Рынок заведений общественного питания Москвы

Инвесторы из фонда «Shut Up and Take My Money» решили попробовать себя в новой области и открыть заведение общественного питания в Москве. Заказчики ещё не знают, что это будет за место: кафе, ресторан, пиццерия, паб или бар, — и какими будут расположение, меню и цены.

Нам доступен датасет с заведениями общественного питания Москвы, составленный на основе данных сервисов Яндекс Карты и Яндекс Бизнес на лето 2022 года. Информация, размещённая в сервисе Яндекс Бизнес, могла быть добавлена пользователями или найдена в общедоступных источниках. Она носит исключительно справочный характер.

Нам предстоят следующие шаги:

План работы:

Описание данных

Загрузка таблицы и изучение общей информации о данных

По предварительной информации о датасете мы можем увидеть:

Предобработка данных

Изучение имеющихся данных

к оглавлению

Замена данных в столбце chain

к оглавлению
Данные в виде нулей и единиц лучше заменить или на булево значение, или на текст: сетевое и несетевое заведение, так как информация в таком виде будет более наглядной и понятной при анализе датасета.

Теперь данные в столбце chain стали более наглядными.

Удаление пропусков

Пропуски есть в столбцах:

Изучение пропусков в hours

к оглавлению

Уникальных значений в столбце category — 8, в строках с пропусками о времени работы встречаются все эти категории заведений. Выявить какую-то закономерность не получится. Рассмотрим пропуски в hours нагляднее.

Мы имеем 536 пропусков в данных на с сервисов Яндекс Карты и Яндекс Бизнес. Если проверить пропуски в столбце со временем работы заведений на других площадках, то можно найти недостающие данные, например:

Однако, такое заполнение пропусков нецелесообразно, учитывая их количество — это займёт слишком много времени, а также может не отражать действительность относительно остального датасета: мы работаем с данными за 2022 год, в то время как в открытых источниках можно найти актуальную информацию — и некоторые заведения могли изменить время работы за этот период или сменить место и название.

Заменим пропуски в столбце hours на unknown, чтобы мы смогли использовать эти строки при анализе в дальнейшем, однако смысловой нагрузки такая замена не понесёт.

Изучение пропусков в price

к оглавлению

Здесь тоже не наблюдается прямой зависимости между пропусками и категориями заведений.

В столбце price пропусков ещё больше: 5091. Это более 60% датасета. Заменить данные вручную нельзя, это исказит результаты анализа по известным категориям цен в заведениях. Мы не будем производить замену в этом столбце, чтобы в дальнейшем можно было использовать имеющиеся данные для анализа без использования среза.

Изучение пропусков в avg_bill

к оглавлению

И снова у нас нет никакой взаимосвязи с категориями, другие столбцы для выявления зависимости с пропусками использовать нецелесообразно: остальные имеющиеся данные не могут быть связаны с пропусками в данных о диапазонах средних чеков. Рассмотрим пропуски детальнее, чтобы убедиться в этом.

Да, данных просто нет — и с этим придётся смириться. Заменять пропуски нецелесообразно, так как этот столбец мы не будем использовать для анализа.

Пропуски в столбцах middle_avg_bill и middle_coffee_cup напрямую связаны с avg_bill, данные в них отбирались по подстрокам «Средний счёт» и «Цена одной чашки капучино», потому отдельно изучать их не будем, как и заменять: столбцы имеют числовой формат и внесение нулевых значений исказит результаты, а замена на unknown изменит тип столбца.

Изучение пропусков в seats

к оглавлению

Даже некоторые рестораны не указывают эту информацию. Пропуски в количестве посадочных мест могут быть в любой категории заведений. Столбец содержит данные типа int — замена на 0 может исказить данные датасета. Проверим, в каких категориях нулевое количество посадочных мест, чтобы убедиться в этом.

Рестораны без посадочных мест не на последнем месте в получившемся списке. Рассмотрим соотношение на круговой диаграмме.

Проверим в отдельной переменной, как сильно изменится информация, если заменить пропуски на 0.

Некоторые категории заведений поменялись местами при подобной замене. Это может существенно отразиться не только на нулевых значениях, но и на всём объеме данных по столбцу seats, потому заменять пропуски не будем.

Мы изучили пропуски в следующих столбцах:

Обработка дубликатов и аномальных значений

Во всех категориальных текстовых столбцах уникальных наименований меньше, чем строк в датасете. Мы можем изучить их подробнее, чтобы исключить дубликаты, которые могут повлиять на дальнейший анализ. Текстовые столбцы в датасете:

Также стоит проверить на аномалии столбец seatsколичество посадочных мест

Изучим данные в name

к оглавлению

Аномалий в виде лишних пробелов в начале и конце наименований нет. Всё остальное может быть интерпретировано как креативность владельцев заведений, за исключением:

Выясним, что кроется за числовыми названиями.

Следовательно, необходимо удалить строку с индексом 5875. А также, чтобы привести всё наименования к единому виду, воспользуемся заменой по найденным пунктам.

Из датасета были удалены 135 неявных дубликата по столбцу name. А также одно заведение с некорректным названием.

Изучим данные в address

к оглавлению

Среди выведенных адресов можно обратить внимание на следующие:

Такие адреса нельзя назвать корректными, потому удалим из датасета строки, в которых в качестве адреса указывается административный округ Москвы или размытые адреса в стиле "парк", "ботанический сад" и подобные.

Мы уже избавились от 122 строк. Также следует обратить внимание на то, что среди адресов есть строки, в которых перед наименованием улицы указан посёлок Рублёво. В дальнейшем эта информация нам может пригодиться при создании нового столбца.

Больше аномалий в названиях адреса нет. Проверим на дубликаты по адресу и наименованию — различия в других столбцах могут быть объяснимы, а нахождение одинаковых заведений в одном месте нужно рассмотреть.

Итого у нас 4 заведения в датасете повторяются:

В столбце address больше нет размытых адресов и дубликатов по заведениям. Датасет уменьшился на 1.5%.

Изучим данные в hours

к оглавлению

Среди данных о времени работы заведений, кроме пропусков, аномалий нет, информация выглядит единообразно оформленной.

Изучим данные в price

к оглавлению

В категориях цен, исключая пропуски, аномалий нет.

Изучим данные в avg_bill

к оглавлению

В диапазонах среднего чека всё тоже выглядит весьма единообразно.

Изучим данные в district

к оглавлению

Среди округов тоже нет аномальных наименований. Но мы можем упростить этот столбцец, удалив повторяющийся префикс административный округ в новом столбце.

Теперь наименования административных округов Москвы выглядят менее громоздко, что может пригодиться при создании графиков и таблиц.

Изучим данные в seats

к оглавлению

Судя по выведенной ранее статистике, в датасете есть аномально большие значения в количестве посадочных мест. Они могут отличаться от категории к категории, потому выведем график размаха по разным категориям по отдельности.

Выбросы в каждой категории начинаются с разных значений, но объединяет их одно: после 700 мест выбросы становятся единичными. Ограничим график до этого значения, чтобы рассмотреть его поближе.

Судя по диаграмме размаха, выбросов много, но аномальные и редкие выбросы начинаются в разных диапазонах, мы можем удалить значения в разных категориях до следующего уровня:

Важно помнить, что у нас есть пропуски в seats, а потому для удаления лишних значений воспользуемся вспомогательным столбцом, где пропуски заменим на ноль, а после устранения аномалий удалим его.

Первоначальный датасет уменьшился на 2,2%, при этом мы избавиись от аномальных значений в количестве посадочных мест, от заведений с размытыми адресами, от дубликатов в адресах. Помимо этого мы устранили неявные дубликаты в названиях заведений и заведение с некорректным наименованием.

Также мы заменили пропуски в столбце hours с указанием времени работы заведения. Сохранены пропуски в пяти столбцах:

Добавление новых столбцов

Создаём новый столбец street

к оглавлению
Как правило, улица находится на втором месте в строке, значения разделены запятыми. Помним, что встречаются адреса, в которых на втором месте фигурирует "посёлок", потому нам понадобятся 2 условия, чтобы собрать улицы воедино.

Все в сборе, даже улицы из посёлка Рублёво: Новолучанская улица и улица Василия Ботылёва.

Создаём новый столбец is_24/7

к оглавлению

Добавлены новые столбцы:

Исследовательский анализ данных

к оглавлению

Общий анализ заведений общественного питания

Отобразим все заведения датасета на карте с помощью кластеров

На этой интерактивной карте с разделением на административные районы Москвы можно увидеть все заведения из датасета, которые нам предстоит анализировать. На каждой метке мы можем увидеть следующее:

Какие категории заведений представлены в данных?

к оглавлению

В датасете представлено 8 категорий. Кафе преобладают над всеми прочими категориями. Меньше всего представлено булочных.

Рассмотрим распределение этих категорий на круговой диаграмме.

К сожалению, сотые в дробях смазали картину — на круговой диаграмме представлены 100,05% заведений датасета :)

Если считать доли до десятичных, то общее количество данных помещается в 100%.

На круговой диаграмме видна общая тенденция: 8 имеющихся категорий можно условно разделить на 3 группы.

Какие административные районы Москвы присутствуют в датасете?

к оглавлению

Какое количество посадочных мест в разных категориях заведений общественного питания?

к оглавлению

По сводной таблице можно заметить, как много данных по посадочным местам пропущено:

Посмотрим распределение рейтингов на тепловой карте.

Почти у всех категорий заведений наибольшее количество объектов с диапазоном посадочных мест от 40 до 49, исключением являются заведения быстрого питания и булочные: у них популярнее диапазон 0-9 посадочных мест.

Рассмотрим средние и медианные значения рейтингов на графике.

Пропуски могут смазать картину по категориям. Однако всё это не мешает нам проанализировать информацию по имеющимся данным:

Какие рейтинги в разных категориях заведений?

к оглавлению

При изучении диаграмм размаха по категориям можно заметить любопытный факт: низкие оценки есть во всех категориях, но среди кофеен, пиццерий, баров, булочных и столовых выбросов в сторону низких оценок меньше, чем у других. Впрочем, на максимальном рейтинге нет выбросов только в категориях кафе и бар, что говорит о том, что там высокие оценки не являются большой редкостью.

У интересующей заказчика категории кофейня оценки в по большей части варьируются от 3.7 до 4.8 — весьма неплохой показатель, среди выбросов есть и максимальный рейтинг 5, а минимальный — 1.4, низкий, но не единица.

Рассмотрим средние рейтинги на графике.

В среднем самые высокие рейтинги у баров, а самые низкие — и заведений быстрого питания. При этом, все оценки не очень далеко ушли друг от друга, средние значения колеблются от 4.4 до 4.

Но если сравнить с медианными значениями, мы можем увидеть, что у половины заведений оценки равны среднему значению, а у столовых, кафе и заведений быстрого питания выше среднего.

Фоновая картограмма со средним рейтингом заведений каждого района

В среднем, самый высокий рейтинг у заведений в Центральном округе, а самый низкий — в Юго-Восточном.

Какая есть зависимость времени работы заведений от расположения и их категорий?

к оглавлению

Прежде, чем мы приступим к расчётам, важно вспомнить, что в группу заведений, не работающих ежедневно и круглосуточно, попадают и те объекты общественного питания, в которых о времени работы мы ничего не знаем. При замене пропусков в столбце hours мы использовали unknown. Для расчёта корректной доли круглосуточных заведений на основании известных данных, объекты без указанного времени работы мы выделим отдельно.

Большая часть заведений во всех категориях не работает круглосуточно каждый день

Рассмотрим на солнечной диаграмме соотношение заведений с разным графиком работы по административным районам Москвы и разделением на категории.

При детальном рассмотрении графика о распределении объектов с круглосуточной работой, можно заметить следующее:

Анализ сетевых заведений общественного питания

Какое соотношение сетевых и несетевых заведений в датасете?

к оглавлению

Почти две трети заведений в датасете несетевые.

Какие категории заведений чаще являются сетевыми?

к оглавлению

Какое количество посадочных мест в сетевых заведениях наиболее распространено?

к оглавлению

На этой тепловой карте отчётливо видно следующее:

Какие сети заведений общественного питания самые популярные в Москве?

к оглавлению
Под популярностью понимается количество заведений этой сети в регионе. Выделим 15 самых популярных сетей и рассмотрим их поближе.

Как можно увидеть на этой сводной таблице, в 8 из 15 популярных сетей несколько категорий заведений под единым именем. От категории к категории отличаются средние рейтинги и медианное количество посадочных мест в рамках одной сети. Визуализируем распределение на графике.

Анализируя график, можно заметить следующее:

Можно предположить, что в график попали не все заседения сети, если было принято решение использовать для разных категорий разные наименования. Например, в сети ресторанов могут быть разные направления — и каждый из них могут вести под разными брендами. Также в одну сеть могут попасть разные компании, если они используют франшизу, например, Шоколадница: под одним брендом могут быть открыты кофейни с разными владельцами, по сути, каждый владелец может расширить свою сеть, но для обывателя она будет общей, не отличаясь от конкурентов по франшизе.

Также можно предположить, что некоторые объекты не являются крупными сетями: Чайхана и Хинкальная может состоять из нескольких объектов в сети, но обладая популярными и обобщёнными именами, попадает в нашу выборку, это может объяснить и разные категории под одним наименованием.

Выведем карту со всеми объектами из 15 топовых сетей общественного питания.

Анализ расположения заведений общественного питания

На каких улицах наибольшее количество заведений общественного питания?

к оглавлению

Выясним, в каких округах есть заведения с самых популярных улиц.

По графику и сводной таблице видно следующее:

Рассмотрим расположение всех заведений на 15 самых популярных улицах на карте.

Единичные заведения из Северо-Западного и Восточного округов находятся на МКАДе, который опоясывает город.

Найдём улицы, на которых находится только один объект общепита

к оглавлению

В датасете 438 улиц, на которых по одному заведению, рассмотрим, как они распределяются по округам и категориям.

Рассмотрим рейтинги в этих заведениях.

Так как не во всех районах присутствует весь перечень категорий по улицам с одним заведением, тепловая карта библиотеки plotly подсветила пропуски минимальным средним рейтингом из таблицы:

В целом же мы можем увидеть следующее:

Таким образом можно сказать, что среди районов с единичными по улице заведениями, наиболее привлекательные Центральный, Юго-Восточный и Западный административные округа.

Выведем на карту все заведения, которые находятся на улицах в единичном экземпляре.

Как удалённость от центра влияет на цены в заведениях?

к оглавлению
Значения средних чеков заведений хранятся в столбце middle_avg_bill. Эти числа показывают примерную стоимость заказа в рублях, которая чаще всего выражена диапазоном. Рассчитаем медианные и средние значения этого столбца для каждого района.

Как мы можем увидеть по медианным значениям:

Выведем фоновую картограмму с медианными значениями средних чеков по районам.

На хороплете наглядна видна разница средних цен в Центральном и Западном административных округах, так же выделяются Северо-Западный и Северный административные округа: у них цены ниже лидирующих районов, но превышают средний чек в остальных округах.

Общий вывод

к оглавлению

Детализируем исследование: открытие кофейни

к оглавлению

Основателям фонда «Shut Up and Take My Money» не даёт покоя успех сериала «Друзья». Их мечта — открыть такую же крутую и доступную, как «Central Perk», кофейню в Москве. Будем считать, что заказчики не боятся конкуренции в этой сфере, ведь кофеен в больших городах уже достаточно. Проанализируем, насколько осуществима мечта клиентов об открытии такой несетевой кофейни.

Выделим в отдельную переменную информацию о всех кофейнях датасета.

Также для углубления анализа нам может пригодиться новая категоризация кофеен по уровню их конкуренции относительно друг друга, в зависимости от их расположения. Так как навык владения кодом пока недостаточно хорош и вычленить уровень конкуренции по количеству заведений в радиусе не получится, будем использовать знакомую по общему анализу логику:

Посмотрим, какое количество кофеен приходится на улицы.

На графике можно увидеть, что после 7 кофеен на улице начинается более плавное снижение к меньшему количеству объектов на улицах. Обозначим как минимальное для высокой конкуренции скопление кофеен на одной улице — до 7.

Для анализа кофеен мы оставили 13 столбцов с данными, которые позволят нам изучить особенности этой категории, и добавили 1 новый:

Итого:

В каких районах больше всего кофеен, каковы особенности их расположения?

к оглавлению

Рассмотрим, какие места более популярны для размещения кофеен: там, где высокая конкуренция и количество кофеен на улице наибольшее, улицы, где есть только одна кофейня, или улицы со средней конкуренцией. Помимо уровня конкуренции, выведем разделение кофеен на сетевые и несетевые.

На тепловом графике становится более отчётливо видно распределение не только среди сетевых и несетевых кофеен, но уровень конкуренции между ними:

Есть ли круглосуточные кофейни?

к оглавлению

Среди кофеен очень мало круглосуточных заведений. По всем районам их доля не превышает 10%.

Можно предположить, что изначально открывать круглосуточную кофейню нет большой необходимости, увеличить же рабочее время до поздних часов можно будет после выявления окупаемости нового заведения.

Какие у кофеен рейтинги? Как они распределяются по районам?

к оглавлению

Кофейни могут разделяться по разным критериям:

Расмотрим рейтинги у сетевых и несетевых заведений на диаграмме размаха с разделением по районам Москвы.

При рассмотрении сравнительных диаграмм размаха рейтингов кофеен по районам, можно отметить, что медиана у всех несетевых заведений выше, чем у кофеен, принадлежащих к сети. Есть предположение, что при открытии уникальной кофейни без франшизы, можно с большой вероятностью снискать высокий рейтинг от посетителей. Важно отметить:

Рассмотрим средние рейтинги по районам с разделением не только на отношение к сети, но и на уровень конкуренции, а также в зависимости от графика работы. Несетевые кофейни выделим в оформлении графиков дополнительно.

Кроме того создадим вспомогательный график с количеством заведений в каждой группе кофеен, чтобы объективно оценить, по какому количеству объектов выводились средние значения.

Рассмотрим рейтинги исключительно между несетевых заведений, чтобы предположить наиболее перспективные места для открытия кофейни.

Наиболее привлекательными выглядят средние рейтинги от 4,4 и выше — и если ориентироваться на эти оценки, то можно рассмотреть такие места для открытия новой кофейни:

На какую стоимость чашки капучино стоит ориентироваться при открытии и почему?

к оглавлению

В столбце middle_coffee_cup очень подозрительно выглядит максимальная стоимость одной чашки капучино за 1568 рублей. Отсечём это значение и проверим, как будет выглядеть статистика.

В датасете одно заведение с такой высокой стоимостью чашки капучино. Построим гистограмму без учёта этой аномальной кофейни с разделеним по принадлежности к сети.

Среди сетевых кофеен наиболее распространены цены: от 60 до 69 рублей за чашку капучино, от 90 до 99 рублей и от 250 до 259 рублей за чашку капучино.

А вот среди несетевых кофеен можно заметить распредение цен, близкое к распределению Пуассона: наивысший пик приходится на диапазон цен от 150 до 169 рублей за чашку капучино, вправо и влево от этой цены стоимость снижается, если не учитывать провалы с 10-11 кофейнями на 190-199 и 140-149 рублях соответственно. Можно предположить, что основной диапазон цен на чашку капучино в несетевых кофейнях 100-230 рублей.

Построим тепловую карту для несетевых кофеен по этому диапазону цен и рейтингам.

На этой тепловой карте мы можем увидеть, что при стоимости чашки капучино за 150-159 рублей, у кофейни наиболее высока вероятность получать высокие рейтинги. При этом, нельзя отказываться и от расценок до 179 рублей за чашку капучино — эти цены есть ещё у 28 заведений с высоким рейтингом. Более высокие цены могут быть обяснены районом, в котором располагается кофейня. Рассмотривать цены ниже 150 не будем, так как цель коммерческого предприятия — зарабатывать деньги, а значит, ориентироваться лучше на места c наибольшей выручкой.

Рассмотрим средние рейтинги по районам в зависимости от цены чашки капучино.

Ранее мы уже выделили самые перспективные места для будущей кофейни. Рассмотрим, какие цены на чашку капучино можно установить в зависимости от места расположения.

Резюмируя, можно сузить территорию поиска для будущего заведения:

Для выявления наилучших мест в этих районах, следует провести анализ проходимости точек, в которых может расположиться будущая кофейня.

Презентация

к оглавлению

Ссылка на облачное хранилище с презентацией